.TH iter_swap(std::move_iterator) 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
iter_swap(std::move_iterator) \- iter_swap(std::move_iterator)

.SH Synopsis
   template< std::indirectly_swappable<Iter> Iter2 >

       friend constexpr void
           iter_swap( const move_iterator& x, const                       \fI(since C++20)\fP
   std::move_iterator<Iter2>& y )

               noexcept(/*see below*/);

   Swaps the objects pointed to by two underlying iterators. The function body is
   equivalent to ranges::iter_swap(x.base(), y.base());.

   This function template is not visible to ordinary unqualified or qualified lookup,
   and can only be found by argument-dependent lookup when std::move_iterator<Iter> is
   an associated class of the arguments.

.SH Parameters

   x, y - move iterators to the elements to swap

.SH Return value

   \fI(none)\fP

.SH Complexity

   Constant.

.SH Exceptions

   noexcept specification:
   noexcept(noexcept(ranges::iter_swap(x.base(), y.base())))

.SH Example


// Run this code

 #include <iostream>
 #include <iterator>
 #include <string>
 #include <vector>

 int main()
 {
     std::vector<std::string> p{"AA", "EE"},
                              q{"ⱯⱯ", "ƎƎ"};

     std::move_iterator<std::vector<std::string>::iterator>
         x = std::make_move_iterator(p.begin()),
         y = std::make_move_iterator(q.begin());

     std::cout << *x << ' ' << *y << '\\n';

     iter_swap(x, y); // ADL

     std::cout << *x << ' ' << *y << '\\n';
 }

.SH Output:

 AA ⱯⱯ
 ⱯⱯ AA

.SH See also

   swap        swaps the values of two objects
               \fI(function template)\fP
   swap_ranges swaps two ranges of elements
               \fI(function template)\fP
   iter_swap   swaps the elements pointed to by two iterators
               \fI(function template)\fP
   iter_swap   swaps the values referenced by two dereferenceable objects
   (C++20)     (customization point object)
   iter_swap   swaps the objects pointed to by two adjusted underlying iterators
   (C++20)     \fI(function template)\fP

.SH Category:
     * conditionally noexcept
